.NET news » Search results
Search results for query "System" (117):
Less Loosely Coupled Than Meets The Eye
I don’t know that it is possible to write anything like a unitary software system in a way that is truly loosely coupled. It’s not that you can’t make boxes and lines that are cleanly separated in all sorts of pretty ways, though that’s hard enough. The problem is that even if you manage to do that, what you end up with is actually still pretty tightly coupled.
What do I mean?
Well, let me use Visual Studio as an example. It’s made up of all kinds of extensions which communicate through formal interfaces. Putting aside the warts and just looking at how it was intended to work it seems pretty good. You can make and replace pieces independently, there is a story for how now features light up; it’s all pretty good. Yes, it could be better but let’s for the moment idealize what is there. But is it loosely coupled, really?
Well the answer is heck no.
These systems all share resources in fundamental ways that actually tie them together pretty tightly. It starts with the address space, each extension can be victimized by the others, and it goes on. In fact every important resource on the machine is subject to direct interference between nominally isolated extensions. Is this avoidable?
I don’t think it is actually. I think unitary software systems are fundamentally tightly coupled when you look at them through a performance lens. And that is why I’m so often telling people that they need to look at their overall system and see if, when it’s all put together, it has any hope of working the way you want. Two subsystems that both (loosely) use 2/3 of the L2 cache are going to use 4/3 of a cache… that’s not good. There may be no lines between them in the architecture diagram but they are going to destroy each others ability to work.
So, does that about wrap it up for agile then? Should we just waterfall our way to victory?
Hardly.
Everything you’ve ever read about requirements changing and not over-designing systems that are loosely specified (much less loosely coupled) still applies, but just because you’re going agile and you want to keep your flexibility is no reason to not think about what it’s all going to look like when you put it all together. Some kind of blend is needed.
If you do run into problems that loose architecture is going to help you. But waiting until you’re done and counting on your agility to save you at the finish line isn’t so smart either. Agile development doesn’t prohibit you from planning out the parts that need planning and understanding your key constraints. In fact I think it encourages this – knowing your constraints keeps you honest and lets you make adjustments smartly as you go.
Performance is never loosely coupled. Don’t be fooled by your diagram, the profiler doesn’t know where your little boxes and lines are. Trust me :)
SharePoint Applied: Azure ServiceBus and SharePoint 2010
The cloud means many things. It means Facebook, LinkedIn, Twitter, Google, Bing and - oh yes - Windows Azure! Windows Azure, as you know, is Microsoft’s cloud operating system. It consists of many parts, but at a high level you can say it includes Compute (web and worker roles, plus storage), SQL Azure and AppFabric. AppFabric, in turn, consists of AppFabric Access Control, ServiceBus, and Cache. This article concerns ServiceBus, and its integration with SharePoint 2010 and Office 365.
How to Start Unit Testing .NET Projects
read more
A Naming Scheme for Database Tables and Fields
Use Transformations to Draw Your Own Great Graphs
Visual Studio comes with a huge number of pre-built components and controls, including controls for entering and displaying text, letting the user pick options and make choices, displaying values graphically, interacting with databases, displaying dialogs, and containing and arranging other controls. But it comes with surprisingly few controls for displaying graphical data. If you don't want to shell out big bucks for a third-party graphing control, you're pretty much stuck drawing your own pictures on a PictureBox.
Fortunately, drawing graphs isn't all that hard. Mostly it's a matter of drawing lines or boxes to connect some data points. The only really tricky details involve translating data values to and from the pixel coordinate system used to draw on the control..
SQLCLR Security and Designing for Reuse
Bringing the Common Language Runtime (CLR) into SQL Server presents an entirely new set of challenges with regard to privilege and some of the rules that SQL Server developers are used to do not completely translate. Simple grant/deny/revoke logic still applies, but the CLR also brings its own set of specialized permissions, which require slightly different handling in order to properly manipulate.
By not carefully considering these issues when designing your SQLCLR code base, you may be allowing your code too much access.
This article focuses on what the SQLCLR permission sets do to control security and reliability, and what you need to understand when working with them in order to design a system that takes advantage of least privilege. By not carefully considering these issues when designing your SQLCLR code base, you may allow your code too much access, thereby creating potential vectors for security problems down the road..
Looking at Visual Studio 2005 Tools for Office
The Microsoft Visual Studio 2005 Tools for the Microsoft Office System brings significant enhancements to the development of business solutions that rely on solutions based on Office, Excel, InfoPath and Outlook 2003. Extending the previous versions, the integration of these tools into Visual Studio 2005 is designed to solve many different business challenges.
In this screencast, available here we take a quick look at these tools and explores some of the core features they provide to developers. After viewing this Fast Tip we encourage you to review the following white paper for more information.
Syndicating and Consuming RSS 1.0 (RDF) Feeds in ASP.NET 3.5
Until recently, there was no built-in support for creating or consuming syndication feeds in the.NET Framework. That changed with the release of the.NET Framework version 3.5, which included a new namespace: System.ServiceModel.Syndication.
This new namespace includes a handful of classes for working with syndication feeds. As aforementioned, syndication feeds are XML files, and for the syndication feed to be of any use it must conform to one of the popular syndication feed standards. The two most popular syndication feed standards are RSS 2.0 and Atom 1.0, and these are the standards supported by the classes in the codeSystem.ServiceModel.Syndication namespace. But there is a third format that, while not as popular as RSS 2.0 or Atom 1.0, is still used. That standard is RSS 1.0./?p
The good news is that with a little bit of work we can create a class that works with the RSS 1.0 standard and have this class used by the syndication feed-related classes in the.NET Framework 3.5 can be. This article introduces a free library, skmFeedFormatters, which you can use in an ASP.NET 3.5 application to create and consume RSS 1.0 feeds.
Ngen or not? The rules haven't changed very much since 2004
I still get questions that amount to "should I ngen my <something>" from time to time and the best answer I can give is still "it depends." I wrote this article many years ago, and I'd say it's still pretty accurate: http://blogs.msdn.com/b/ricom/archive/2004/10/18/244242.aspx
Essentially the situation is this: if you ngen your IL then of course the jit will not have to run but you will have to do more I/O because the compiled code is bigger than the IL. If that I/O is likely to be cached because either:
The code is going to be loaded "a goodly amount of time" after ice cold startup and it's commonly used so superfetch is likely to fetch it, or The code is in a library shared by many programs and so only one of those programs at most will have to actually read it at full costthen it's likely that ngen will help you overall.
If that's not the case then ngen isn't likely to help you. But really you need to measure for yourself.
Remember also that the code generation for ngen'd binaries is going to tend to optimize for maximum sharability which may come at a (typically small) cost in raw speed so that's a factor as well.
The most common framework DLLs, like mscorlib, system.dll and friends, tend to be get the most benefits from ngen. Single-use application libraries and executables tend to get the least benefit.
It's really hard to say more than that with any kind of precision.
Defining Descriptive Text for Enumeration Members
An enumeration is a special type in the .NET Framework that is comprised of a number of named constants.
While you might not have created an enumeration type yourself, you have likely used enumerations many times in day-to-day programming. For example, the rows in a
GridView have a RowType property that returns an
enumeration of type DataControlRowType that
indicates the row's type: Header, Footer, DataRow, and so on.
When working with an enumeration we may need to display a descriptive message based on the enumeration's value. For example, using ASP.NET's
Membership system you can programmatically create a new user account calling the Membership
class's CreateUser method. This method specifies the success or failure of the
operation via the MembershipCreateStatus enumeration.
This enumeration has members like Success, InvalidUserName, InvalidPassword, DuplicateUserName, and the like. When
calling this method from an ASP.NET page you might want to show the user a descriptive message based on this enumeration value.
This article explores three different ways to provide descriptive text for enumeration members.


Syndicate